package com.zhaotianhao.serviceorder.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhaotianhao.serviceorder.common.JsonResult;
import com.zhaotianhao.serviceorder.dto.OrderDto;
import com.zhaotianhao.serviceorder.entity.Order;
import com.zhaotianhao.serviceorder.vo.CartVo;
import com.zhaotianhao.serviceorder.vo.SkuVo;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Z-7
 * @since 2022-04-30
 */
public interface IOrderService extends IService<Order> {
    /**
     * 获取下单的商品
     * @param skuIds
     * @param userId
     * @return
     */
    List<SkuVo> getSelectSku(List<Long> skuIds,Long userId);

    /**
     * 库存鉴定
     * @param skuVos
     * @return
     */
    Integer checkoutRepertory(List<SkuVo> skuVos);

    /**
     * 预扣库存
     * @param skuVos
     * @return
     */
    Boolean updateStock(List<SkuVo> skuVos);

    /**
     * 清除购物车
     * @param userId
     * @param skuVos
     * @return
     */
    Boolean clearCart(Long userId,List<SkuVo> skuVos);

    /**
     * 生成订单
     * @param skuVos
     * @param userId
     * @param username
     * @return
     */
    String createOrder(List<SkuVo> skuVos,Long userId,String username);

    /**
     * 生成cartVo
     * @param userId
     * @param skuVos
     * @return
     */
    CartVo createCartVo(long userId, List<SkuVo> skuVos);

    JsonResult getOrderById(OrderDto orderDto);
}
